//package com.zmn.plat.dubbo.impl.gate;
//
//import java.util.ArrayList;
//import java.util.List;
//import java.util.Map;
//import java.util.Objects;
//import java.util.stream.Collectors;
//
//import com.zmn.common.dto.VtDTO;
//import com.zmn.common.utils.number.NumberUtil;
//import com.zmn.consts.GateTypeConsts;
//import com.zmn.manager.common.database.annotation.ReadOnlyConnection;
//import org.apache.dubbo.config.annotation.Service;
//import org.springframework.beans.factory.annotation.Autowired;
//
//import com.alibaba.fastjson.JSONObject;
//import com.zmn.common.dto.ResponseDTO;
//import com.zmn.common.utils.reflect.BeanMapper;
//import com.zmn.common.utils.response.ResponseUtil;
//import com.zmn.plat.dubbo.dto.gate.BaseGateDIO;
//import com.zmn.plat.dubbo.dto.gate.BaseGateDRO;
//import com.zmn.plat.dubbo.interfaces.gate.BaseGateRemoteService;
//import com.zmn.plat.dubbo.utils.DubboConsts;
//import com.zmn.plat.model.entity.gate.BaseGate;
//import com.zmn.plat.services.interfaces.gate.BaseGateService;
//
//import lombok.extern.slf4j.Slf4j;
//
///**
// * 类描述：BaseGateService 实现类
// *
// * @author yuanyunlong
// * @modifier
// * @since 2019/11/14 2:08 下午
// */
//
//@Service(loadbalance = "roundrobin", timeout = 5000, retries = -1, version = DubboConsts.INTERFACE_VERSION, validation = "true")
//@Slf4j
//public class BaseGateRemoteServiceImpl implements BaseGateRemoteService {
//
//    private final String TAG = "BaseGateRemoteServiceImpl";
//
//    @Autowired
//    private BaseGateService baseGateService;
//
//    @Override
//    public ResponseDTO<BaseGateDRO> getGateByQuery(BaseGateDIO baseGateDIO) {
//        Integer gateId = Objects.requireNonNull(baseGateDIO.getGateId(), TAG + ",Gate ID不能为空");
//        if (log.isDebugEnabled()) {
//            log.debug("{},请求参数为:{}", TAG, JSONObject.toJSONString(baseGateDIO));
//        }
//        BaseGate gate = baseGateService.findByIdAndGateTypeAndStatus(gateId, baseGateDIO.getGateType(), baseGateDIO.getStatus());
//        // BaseGateDRO dro = new BaseGateDRO();
//        // BeanMapper.copy(gate, dro);
//        BaseGateDRO baseGateDRO = BeanMapper.map(gate, BaseGateDRO.class);
//        return ResponseUtil.responseSuccessData(baseGateDRO);
//    }
//
//    @Override
//    @ReadOnlyConnection
//    public com.zmn.common.dto2.ResponseDTO<List<VtDTO>> listAllGate() {
//        List<BaseGate> data = baseGateService.listAllGate();
//        List<VtDTO> items = data.stream().map(baseGate -> new VtDTO(baseGate.getGateId(), baseGate.getGateName(), baseGate.getStatus())).collect(Collectors.toList());
//        return com.zmn.common.dto2.ResponseDTO.success(items);
//    }
//
//    @Override
//    public com.zmn.common.dto2.ResponseDTO<List<VtDTO>> listAllGateType() {
//        Map<Integer, String> gateTypeMap = GateTypeConsts.GATE_TYPE_VT_MAP;
//        List<VtDTO> data = new ArrayList<>(gateTypeMap.size());
//        gateTypeMap.forEach((key, value) -> {
//            VtDTO vtDTO = new VtDTO();
//            vtDTO.setStatus(Boolean.TRUE);
//            vtDTO.setValue(key);
//            vtDTO.setText(value);
//            data.add(vtDTO);
//        });
//
//        return com.zmn.common.dto2.ResponseDTO.success(data);
//    }
//
//    @Override
//    @ReadOnlyConnection
//    public com.zmn.common.dto2.ResponseDTO<List<VtDTO>> listGateByType(Integer type) {
//        if (NumberUtil.isNullOrZero(type)) {
//            return com.zmn.common.dto2.ResponseDTO.fail("入口类型不能为空");
//        }
//
//        List<BaseGate> baseGates = baseGateService.listGateByType(type);
//        List<VtDTO> items = baseGates.stream().map(baseGate -> new VtDTO(baseGate.getGateId(), baseGate.getGateName(), baseGate.getStatus())).collect(Collectors.toList());
//
//        return com.zmn.common.dto2.ResponseDTO.success(items);
//    }
//}
